package myzzyl.service;

import myzzyl.domain.dto.DeviceDto;
import myzzyl.domain.pojo.Device;
import com.baomidou.mybatisplus.extension.service.IService;
import myzzyl.domain.vo.DeviceVo;
import myzzyl.response.PageResponse;

import java.util.List;

/**
* @author 33249
* @description 针对表【device】的数据库操作Service
* @createDate 2025-08-24 16:27:08
*/
public interface DeviceService extends IService<Device> {

    /**
     * 分页获取设备
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @param deviceName 设备名称
     * @param productKey 产品id
     * @param locationType 设备类型
     * @return 返回值
     */
    PageResponse<Device> pageQuery(Integer pageNum, Integer pageSize, String deviceName, String productKey, Integer locationType);

    /**
     * 获取设备详情数据
     * @param deviceDto 设备表单请求封装类
     * @return 返回值
     */
    DeviceVo getInfo(DeviceDto deviceDto);

    /**
     * 新增设备
     * @param deviceDto 设备表单请求封装类
     * @return 返回值
     */
    boolean add(DeviceDto deviceDto);

    /**
     * 编辑设备
     * @param deviceDto 设备表单请求封装类
     * @return 返回值
     */
    boolean edit(DeviceDto deviceDto);


    /**
     * 删除设备
     * @param deviceDto 设备表单请求封装类
     * @return 返回值
     */
    boolean remove(DeviceDto deviceDto);

    /**
     * 查看物模型运行状态卡片
     * @param deviceDto 设备表单请求封装类
     * @return 返回值
     */
    List<DeviceVo> QueryDevicePropertyStatus(DeviceDto deviceDto);

}
